package model

type LabelRequest struct {
	ID     uint   `json:"id"`                                   //
	Name   string `json:"name" v:"name@required|name#name不能为空"` // 分类名
	Status uint   `json:"status"`                               // 状态
}
type LabelResponse struct {
	ID         uint   `json:"id"`         //
	Name       string `json:"name"`       // 标签名
	CreateTime string `json:"createTime"` // 创建时间
	UpdateTime string `json:"updateTime"` // 更新时间
	DeleteTime string `json:"deleteTime"` // 删除时间
	Status     uint   `json:"status"`     // 状态
}

type LabelResponsePage struct {
	Page Page            `json:"page"`
	List []LabelResponse `json:"datalist"`
}

func (labelRequest LabelRequest) Convert() Label {
	label := Label{
		Id:     labelRequest.ID,
		Name:   labelRequest.Name,
		Status: labelRequest.Status,
	}
	return label
}

func (*LabelResponse) Convert(label *Label) *LabelResponse {
	return &LabelResponse{
		ID:         label.Id,
		Name:       label.Name,
		CreateTime: label.CreateTime.String(),
		DeleteTime: label.DeleteTime.String(),
		UpdateTime: label.UpdateTime.String(),
		Status:     label.Status,
	}
}

func (Label) Convert(label []Label) []LabelResponse {
	var labelResponse = make([]LabelResponse, len(label))
	for i := range label {
		labelResponse[i] = *labelResponse[i].Convert(&label[i])
	}
	return labelResponse
}

func (Label) ConvertPage(label []Label, page Page) LabelResponsePage {
	var labelResponse = make([]LabelResponse, len(label))
	for i := range label {
		labelResponse[i] = *labelResponse[i].Convert(&label[i])
	}
	return LabelResponsePage{
		Page: page,
		List: labelResponse,
	}
}
